package model.bean;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

@Entity
@Table(name="t_empresa")
public class Empresa implements Serializable {

	@Transient
	private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "geradorEmpresa")
	@SequenceGenerator(name = "geradorEmpresa", sequenceName = "sequence_empresa", allocationSize=1)
	@Column(name="id_empresa")
	private Long id;
	
	@Column(length=80)
	private String nome;
	
	@Column(length=18)
	private String cnpj;
	
	@Column(length=13)
	private String telefone1;
	
	@Column(length=13)
	private String telefone2;
	
	@Column(length=80)
	private String responsavel;
	
	@Column(length=50)
	private String email;
	
	@Column(length=100)
	private String endereco;
	
	@Column(length=50)
	private String complemento;
	
	@Column(length=20)
	private String setor;
	
	@Column(length=12)
	private String cep;
	
	@Column(length=20)
	private String cidade;
	
	@Column(length=2)
	private String estado;
	
	@Column(length=5)
	private boolean situacao;
	
	@OneToMany(mappedBy="empresa", fetch= FetchType.EAGER)
	@Cascade(CascadeType.REMOVE)
	private List<Vaga> vagas;
	
	/*@OneToOne(mappedBy = "empresa", fetch = FetchType.EAGER)
    private Usuario usuario;*/
	
	public boolean getSituacao() {
		return situacao;
	}
	public void setSituacao(boolean situacao) {
		this.situacao = situacao;
	}
	public Long getId() {
        return id;
	}
	public void setId(Long id) {
        this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getCnpj() {
		return cnpj;
	}
	public void setCnpj(String cnpj) {
		this.cnpj = cnpj;
	}
	public String getTelefone1() {
		return telefone1;
	}
	public void setTelefone1(String telefone1) {
		this.telefone1 = telefone1;
	}
	public String getTelefone2() {
		return telefone2;
	}
	public void setTelefone2(String telefone2) {
		this.telefone2 = telefone2;
	}
	public String getResponsavel() {
		return responsavel;
	}
	public void setResponsavel(String responsavel) {
		this.responsavel = responsavel;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getEndereco() {
		return endereco;
	}
	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}
	public String getComplemento() {
		return complemento;
	}
	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}
	public String getSetor() {
		return setor;
	}
	public void setSetor(String setor) {
		this.setor = setor;
	}
	public String getCep() {
		return cep;
	}
	public void setCep(String cep) {
		this.cep = cep;
	}
	public String getCidade() {
		return cidade;
	}
	public void setCidade(String cidade) {
		this.cidade = cidade;
	}
	public String getEstado() {
		return estado;
	}
	public void setEstado(String estado) {
		this.estado = estado;
	}
	public List<Vaga> getVagas() {
		return vagas;
	}
	public void setVagas(List<Vaga> vagas) {
		this.vagas = vagas;
	}
	/*public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}*/
	
}
